﻿using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using DynamicAuditor.DTOs;
using DynamicAuditor.WsMantenimientos;

namespace DynamicAuditor
{
    public partial class WebForm10 : System.Web.UI.Page
    {

        /// <summary>
        /// Declaracion de variables publicas para utilizar en esta pagina.
        /// </summary>
        WsMantenimientos.dtoFormularios dtoformularios = new  WsMantenimientos.dtoFormularios();
        WsSeguridad.dtoUsuario usrconectado = new WsSeguridad.dtoUsuario();
        WsMantenimientos.WsMantenimientos seguridad = new WsMantenimientos.WsMantenimientos();

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                if (Convert.ToBoolean(Session["CrearFormulario"]) == true)
                {
                    Limpiar();
                }
                else
                {
                    Buscar_Formulario();
                }
            }
        }


        /// <summary>
        /// Metodo para volver a la lista de usuarios
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Buscar_Formulario()
        {
            int _idusuario = Convert.ToInt16(Session["idFormulario"]);
            DynamicAuditor.WsMantenimientos.dtoFormularios formulario = new DynamicAuditor.WsMantenimientos.dtoFormularios();
            //DynamicAuditor.WsMantenimientos.WsMantenimientos seguridad = new DynamicAuditor.WsMantenimientos.WsMantenimientos();
            formulario = seguridad.ObtenerFormularioxId(_idusuario);

            if (Convert.ToBoolean(formulario.Activo) == true)
            {
                chkactivo.Checked = true;
            }
            else
            {
                chkactivo.Checked = false;
            }
            this.txtCodigo.Text = formulario.idFormulario.ToString();
            this.txtTitulo.Text = formulario.Titulo;
            this.txtDescripcion.Text = formulario.Descripcion;
            this.txtVersion.Text = formulario.Version.ToString();
        }

        protected void Cancelar(object sender, EventArgs e)
        {
            Response.Redirect("MantCuestionarios.aspx");
        }

        /// <summary>
        /// Metodo para limpiar la pantalla
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Limpiar()
        {
            this.txtCodigo.Text = "";
            this.txtTitulo.Text = "";
            this.txtDescripcion.Text = "";
            this.txtVersion.Text  = "";

        }
        /// <summary>
        /// Metodo para la creacion de clientes.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void Salvar(object sender, EventArgs e)
        {
            int resp = 0;
            DynamicAuditor.WsMantenimientos.dtoFormularios formulario = new DynamicAuditor.WsMantenimientos.dtoFormularios();
            
            usrconectado = (DynamicAuditor.WsSeguridad.dtoUsuario)Session["Usuario"];
            formulario.Activo = this.chkactivo.Checked;
            // usuario.Cedula = mskCedula.Text;
            /*if (usrconectado == null)
            {
                formulario.ModificadoPor = 0;
            }
            else
            {
                formulario.ModificadoPor = usrconectado.idUsuario;
            }*/


            formulario.idFormulario = Convert.ToInt32(txtCodigo.Text);
            formulario.Titulo = txtTitulo.Text;
            formulario.Descripcion = txtDescripcion.Text;
            formulario.Version = Convert.ToInt32(txtVersion.Text);
            try
            {
                if (Convert.ToBoolean(Session["CrearFormulario"]) == true)
                {
                   // cliente.FechaModificacion = DateTime.Now;
                   // cliente.FechaCreacion = DateTime.Now;
                    resp = seguridad.CrearFormulario(formulario);
                    //WebMsgBox.Show("El Formulario fue creado correctamente.");
                    Session["Encabezado"] = formulario;
                    Response.Redirect("MantFormulariosPreguntas.aspx");
                    //Limpiar();
                }
                else
                {
                    int _idusuario = Convert.ToInt16(Session["idFormulario"]);
                    formulario.idFormulario = _idusuario;
                    //cliente.FechaModificacion = DateTime.Now;
                    resp = seguridad.UpdateFormulario (formulario);
                    //WebMsgBox.Show("La informacion fue actualizada satisfactoriamente.");
                    //Response.Redirect("MantCuestionarios.aspx");
                    Session["Encabezado"] = formulario;
                    Response.Redirect("MantFormulariosPreguntas.aspx");
                }
            }
            catch (Exception ex)
            {
                WebMsgBox.Show("Ocurrió un error al actualizar la información del Formulario." + ex.Message);
            }

        }
    }
}
